Q1

a

\[ L(\mu, \sigma, y) = \sum_{i=1}^n \frac{1}{\sqrt{2\pi \sigma^2}} e^{-\frac{1}{2\sigma^2}\sum_{i=1}^n (y_i - \mu)^2} \Rightarrow \\ l = C - \sum_{i=1}^n (y_i - \mu)^2 \Rightarrow \frac{\partial l}{\partial \mu} = 2\sum_{i=1}^n (y_i - \mu) = 0 \iff \mu = \bar y \Rightarrow \mu_{MLE} = \bar y \]

b

i

\[ L(\mu, \delta) = (\mu-\delta)^2 \\ R(\mu, \delta) = E_Y((\mu-\delta)^2) = Bias(\delta,\mu)^2 + V(\delta) = (c-1)^2\mu^2 + c^2\sigma^2 \\ \delta^* = \underset {\delta}{argmin} \ \underset{\mu}{sup} \ R(\mu, \delta) = \underset {\delta}{argmin} \ \underset{\mu}{sup} \ E_Y((\mu-\delta)^2) \\ \quad \text{in order to maximize the risk function we want } \mu \text{ to be as far as large as possibe } \\ \mu^* = a \Rightarrow c^*= \underset {c}{argmin} (c-1)^2a^2 + c^2\sigma^2 \\ \frac{\partial (c-1)^2a^2 + c^2\sigma^2}{\partial c} = ca-a+c\sigma^2 = 0 \iff c = \frac{a}{a + \sigma^2}\Rightarrow c^* = \frac{a}{a + \sigma^2} \\ \text{thus we get: } \hat \mu_c = \frac{a}{a + \sigma^2} y \]

ii

\[ \rho(\pi, \delta) = \sum_{j=1}^2 R(\mu_j,\delta)\pi(\mu_j) = 0.5R(a, \delta) + 0.5R(-a, \delta) = 0.5((c-1)^2a^2 + c^2\sigma^2 + (c-1)^2a^2 + c^2\sigma^2) = (c-1)^2a^2 + c^2\sigma^2 \\ \text{as we saw the minmax estimator minimizes this funtion thus } \delta_\pi^* \text{ is a minmax rule ,therfore it is a least favorable prior} \\ \delta_\pi^* \text{ is unique and } \delta_\pi^* < \infty \text{ thus it is addmissible} \]

Q2

a

\[ L(p, a) = (p - a)^2 \\ \text{using the hint and taking a beta prior we can calaulate te posterior: } \\ \pi(p|y) \propto {n \choose y} p^{y}(1-p)^{n-y}p^{\alpha-1}(1-p)^{\beta-1} \propto p^{y+ \alpha-1}(y+1-p)^{n-y+\beta-1} \\ \text{thus we get: } \pi(p|y) \sim Beta(y+ \alpha, n-y+\beta) \\ \text{we can calculate the bayes rule estimator: } \\ \hat p = E(p|y) = \frac{y+ \alpha}{y+ \alpha+n-y+\beta} = \frac{y+ \alpha}{\alpha+n+\beta} \\ \text{plug it into the risk function: } R(p,\hat p) = Bias(p- \hat p) + V(\hat p) \\ Bias(\hat p-p) = \frac{np + \alpha}{\alpha+n+\beta} - p = \frac{\alpha - (\alpha+\beta)p}{\alpha+n+\beta} \\ V(\hat p) = \frac{V(y)}{(\alpha+n+\beta)^2} = \frac{np(1-p)}{(\alpha+n+\beta)^2} \\ \text{plug both equations back in } R(p,\hat p): \\ R(p,\hat p) = \left (\frac{\alpha - (\alpha+\beta)p }{\alpha+n+\beta} \right )^2 + \frac{np(1-p)}{(\alpha+n+\beta)^2} = \frac{np(1-p) + (\alpha- (\alpha+\beta)p)^2}{(\alpha+n+\beta)^2} = \frac{np(1-p) + \alpha^2 - 2\alpha(\alpha+\beta)p + ((\alpha+\beta)p)^2}{(\alpha+n+\beta)^2} = \\ = \frac{\alpha^2 + (-2\alpha(\alpha+\beta) + np)p + ((\alpha+\beta)^2-n)p^2}{(\alpha+n+\beta)^2} \\ \text{thus if } (-2\alpha(\alpha+\beta) + np) = 0 \text{ and } (\alpha+\beta)^2-n = 0 \]

\[ \text{thus if } (-2\alpha(\alpha+\beta) + np) = 0 \text{ and } (\alpha+\beta)^2-n = 0 \\ \text{ we get a risk function which does not depend on p and we have a minmax estimator} \\ \text{if we take } \alpha = \beta = 0.5\sqrt n : \\ (1): (-2\alpha(\alpha+\beta) + np) = 0 \quad (2): (\alpha+\beta)^2-n = 0 \\ \text{thus we ge that the minmax estimator is: } \hat p = E(p|y) = \frac{y+ 0.5 \sqrt n}{n + \sqrt n} \]

b

\[ \text{ the above estimator is addmissible since it is a unique bayes rule} \\ Beta(\alpha, \beta) \text{ is a least favorable prior (the risk function is constant for all p)} \]

\[ \rho(\pi, a) = \int L(p, a) \text{Beta}(\alpha, \beta) dp = \int (p - a)^2 \frac{p^{\alpha-1}(1-p)^{\beta-1}}{B(\alpha, \beta)}dp \\ \int (p - a)^2 \frac{p^{\alpha-1}(1-p)^{\beta-1}}{B(\alpha, \beta)}dp = \int \frac{p^{\alpha+1}(1-p)^{\beta-1}}{B(\alpha,\beta)} - 2 a \frac{p^{\alpha}(1-p)^{\beta-1}}{B(\alpha,\beta)} - a^2 \frac{p^{\alpha-1}(1-p)^{\beta-1}}{B(\alpha,\beta)} dp = \\ \int \frac{p^{\alpha+1}(1-p)^{\beta-1}}{B(\alpha,\beta)} dp = \frac{\alpha(\alpha +1)}{(\alpha + \beta + 1)(\alpha + \beta)}B(\alpha,\beta)\int \frac{p^{\alpha+1}(1-p)^{\beta-1}}{B(\alpha,\beta)B(\alpha+2,\beta)} = \frac{\alpha(\alpha +1)}{(\alpha + \beta + 1)(\alpha + \beta)} \\ \int 2 a \frac{p^{\alpha}(1-p)^{\beta-1}}{B(\alpha,\beta)} dp = \ldots= 2a \frac{\alpha}{(\alpha + \beta)} \\ \int a^2 \frac{p^{\alpha-1}(1-p)^{\beta-1}}{B(\alpha,\beta)} dp = a^2 \\ \text{plugging all the calculations back in we get:} \\ \int (p - a)^2 \frac{p^{\alpha-1}(1-p)^{\beta-1}}{B(\alpha, \beta)}dp = \frac{\alpha(\alpha +1)}{(\alpha + \beta + 1)(\alpha + \beta)} -2a \frac{\alpha}{(\alpha + \beta)} + a^2 \\ \frac{\alpha(\alpha +1)}{(\alpha + \beta + 1)(\alpha + \beta)} -2\frac{y+ \alpha}{\alpha+n+\beta} \frac{\alpha}{(\alpha + \beta)} + (\frac{y+ \alpha}{\alpha+n+\beta})^2 \]

c

\[ \hat p = \frac{Y}{n} \text{ is addmissible:} \\ \frac{Y}{n} \text{is a bayes rule w.r.t } \frac{(p-a)^2}{p(1-p)} \text{ (thus addmissible)} \\ \text{assume there exsists some estimator } \tilde p \text{ such that: } MSE(p-\tilde p) < MSE(p-\hat p) \text{ we get the following:} \\ L^*(p,\tilde p) = \frac{E[(p-\tilde p)^2]}{p(1-p)} \le \frac{E[(p-\hat p)^2]}{p(1-p)} = L^*(p,\hat p) \\ \text{which is a contradiction to the addmissiblity of } \hat p \text{ w.r.t } L^* \]

Q3

a

\[ difine: a = 0 \Rightarrow accept \ H_0, \quad a = 1 \Rightarrow accept \ H_1 \\ p_{yi} = P(\theta = \theta_i |y) \\ L(\theta, a) = aL_1I(\theta = \theta_0) + (1-a)L_0I(\theta = \theta_1) \\ \rho (\theta, \delta) = E_{\theta|y}(L(\theta, a)) = \delta L_1 p_{y0} + (1-\delta)L_0p_{y1} = \delta (L_1p_{y0} - L_0p_{y1}) + L_0p_{y1} \\ \delta^* = argmin_\delta\ \delta (L_1p_{y0} - L_0p_{y1}) + L_0p_{y1} \\ \text{thus if: } \delta^* = I(L_1p_{y0} < L_0p_{y1}) \\ p_{y0} = P(\theta = \theta_0 |y) = \frac{f(y|\theta_0) p_0}{ f(y)} \\ p_{y1} = P(\theta = \theta_1 |y) = \frac{f(y|\theta_1) p_1}{ f(y)} = \frac{f(y|\theta) (1-p_0)}{ f(y)} \\ L_1p_{y0} < L_0p_{y1} \iff \frac{p_{y1}}{p_{y0}} < \frac{L_0}{L_1} \iff \frac{\frac{f(y|\theta_0) p_0}{ f(y)}}{\frac{f(y|\theta_1) (1-p_0)}{ f(y)}} < \frac{L_0}{L_1} \iff \frac{f(y|\theta_0)}{f(y|\theta_1)} < \frac{(1-p_0)L_0}{p_0L_1} \\ \text{thus the bayes testing rule is: } \frac{p_0L_1}{(1-p_0)L_0} < \frac{f(y|\theta_1)}{f(y|\theta_0)} \]

b

\[ \text{this is a liklihood ratio test and thus a most powerfull test. the critical values of the test is: } \frac{p_0L_1}{(1-p_0)L_0} \]

c

\[ \text{the risk function is: } \\ R(\theta, \delta^*) = \begin{cases} P(\delta^* = 1) L_0 & \theta = \theta_0 \\ P(\delta^* =0)L_1 & \theta = \theta_1 \end{cases} = \begin{cases} \alpha L_0 & \theta = \theta_0 \\ \beta L_1 & \theta = \theta_1 \end{cases} = \begin{cases} \alpha L_0 & \theta = \theta_0 \\ \alpha L_0 & \theta = \theta_1 \end{cases} \\ \text{which does not depend on } \theta \text{ thus the test is also minmax} \]

d

\[ * \text{LR- Liklihood ratio, LLR- Log Liklihood ratio} \\ LR = \frac{f(y|\mu_1)}{f(y|\mu_0)} = exp \left \{-\frac{1}{50}\sum_{i=1}^{100} (y_i-2)^2+\frac{1}{50}\sum_{i=1}^{100} y_i^2 \right \} \]

\[ \frac{10 p_0}{25 (1-p_0)} < LR \iff LLR > ln \left ( \frac{10 p_0}{25 (1-p_0)} \right ) \iff \left \{-\frac{1}{50}\sum_{i=1}^{100} (y_i-2)^2+\frac{1}{50}\sum_{i=1}^{100} y_i^2 \right \} > ln \left ( \frac{10 p_0}{25 (1-p_0)} \right ) \iff \\ \iff -\frac{1}{50}\sum_{i=1}^{100} (y_i^2-4y_i +4 -y_i^2) >ln \left ( \frac{10 p_0}{25 (1-p_0)} \right ) \iff 8 \bar y - 8 >ln \left ( \frac{10 p_0}{25 (1-p_0)} \right ) \iff \\ \iff \bar y > 1+\frac{1}{8}ln \left ( \frac{10 p_0}{25 (1-p_0)} \right ) \\ \text{just need to add plug in } p_0 \text{ and we have a valid test} \\ \]

Q4

\[ \text{calculate te posterior: } \\ \pi(\theta|x) \propto e^{-(x-\theta)} e^{-\theta}I(0<\theta <x) = e^{-x}I(0<\theta <x) \quad \text{which is a constant function of } \theta \\ \text{ thus } \theta|x \sim U[0,x] \\ \rho(\theta, \delta) = E_{\theta|x} L(\theta, \delta) \begin{cases} P(1 < \theta < 2) + P(2 < \theta < 3) + 3P(3 < \theta < 4) & \delta = AB \\ 1P(0 < \theta < 1) + 2P(2 < \theta < 3) + 3P(3 < \theta < 4) & \delta = A \\ 1P(0 < \theta < 1) + 2P(1 < \theta < 2) + 3P(3 < \theta < 4) & \delta = B \\ 2P(0 < \theta < 1) + 2P(1 < \theta < 2) + 2P(2 < \theta < 3) & \delta = O \\ \end{cases} \\ \text{for the case where x=4: } P(1 < \theta < 2) = 0.25 \text{ plugging it back in yields: } \\ \rho(\theta, \delta) = E_{\theta|x} L(\theta, \delta) \begin{cases} 1.25 & \delta = AB \\ 1.5 & \delta = A \\ 1.5 & \delta = B \\ 1.5 & \delta = O \\ \end{cases} \\ \text{the bayes action that minimizes } \rho(\theta, \delta) \text{ is } \delta = AB \]

Q5

a

\[ \text{we saw that for: } X \sim N(\mu_x, \sigma^2_x), \mu_x \sim N(\tilde \mu, \sigma^2) \\ \mu_x|x \sim N(\frac{\sigma^2}{\sigma^2 + \sigma^2_x}x+\frac{\sigma_x^2}{\sigma^2 + \sigma^2_x} \tilde \mu, (\sigma^2 + \sigma^2_x)^{-1}) \\ \text{the bayes estimate w.r.t the quadratic loss is: } E_{\mu_x|x} = \frac{\sigma^2}{\sigma^2 + \sigma^2_x}x+\frac{\sigma_x^2}{\sigma^2 + \sigma^2_x} \tilde \mu \\ \text{pulgging in our setup yields: } E_{\mu_x|x} = \frac{225}{325}115+\frac{100}{325}100 = 110.3846 \]

b

\[ \rho(x, \delta) = E_{\mu|x} L(\mu, \delta) = \int_{- \infty}^\delta (\delta - \mu)f(\mu|x) d\mu + 2\int_{\delta}^\infty (\mu- \delta)f(\mu|x) d\mu= \\ = \delta\int_{- \infty}^\delta f(\mu|x) d\mu - \int_{- \infty}^\delta \mu f(\mu|x) d\mu + 2\int_{\delta}^\infty \mu f(\mu|x) d\mu - 2\delta \int_{\delta}^\infty f(\mu|x) d\mu= \\ =\delta F(\delta) - \int_{- \infty}^\delta \mu f(\mu|x) d\mu + 2\int_{\delta}^\infty \mu f(\mu|x) d\mu - 2\delta(1-F(\delta)) \\ \frac{\partial \rho(x, \delta)}{\partial \delta} = F(\delta) + \delta f(\delta|x) - \delta f(\delta|x) - 2 \delta f(\delta|x) - 2 + 2F(\delta) + 2 \delta f(\delta|x) = 3F(\delta|x) - 2 = 0 \iff \delta = F^{-1}(2/3) \Rightarrow \delta^* = F^{-1}(2/3) \\ \text{using r qnorm function we can estimate the genius IQ w.r.t to this loss which yileds: } 113.9685 \\ * qnorm(2/3, 110.3846, sqrt(900/13)) \]

c

\[ \rho(x, \delta) = E_{\mu|x} L(\mu, \delta) = \int_{- \infty}^\infty (\delta - \mu)^2e^{\frac{(\mu-100)^2}{900}}f(\mu|x) d\mu \]

LS0tDQp0aXRsZTogIkVYIDUiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIFExDQoNCiFbXShRMS5wbmcpDQoNCiMjIyBhDQoNCiQkDQpMKFxtdSwgXHNpZ21hLCB5KSA9IFxzdW1fe2k9MX1ebiBcZnJhY3sxfXtcc3FydHsyXHBpIFxzaWdtYV4yfX0gZV57LVxmcmFjezF9ezJcc2lnbWFeMn1cc3VtX3tpPTF9Xm4gKHlfaSAtIFxtdSleMn0gXFJpZ2h0YXJyb3cNClxcDQpsID0gQyAtIFxzdW1fe2k9MX1ebiAoeV9pIC0gXG11KV4yIFxSaWdodGFycm93IFxmcmFje1xwYXJ0aWFsIGx9e1xwYXJ0aWFsIFxtdX0gPSAyXHN1bV97aT0xfV5uICh5X2kgLSBcbXUpID0gMCBcaWZmIFxtdSA9IFxiYXIgeSBcUmlnaHRhcnJvdyBcbXVfe01MRX0gPSBcYmFyIHkgDQokJA0KDQojIyMgYg0KDQojIyMjIGkNCg0KJCQNCkwoXG11LCBcZGVsdGEpID0gKFxtdS1cZGVsdGEpXjINClxcDQpSKFxtdSwgXGRlbHRhKSA9IEVfWSgoXG11LVxkZWx0YSleMikgPSBCaWFzKFxkZWx0YSxcbXUpXjIgKyBWKFxkZWx0YSkgPSAoYy0xKV4yXG11XjIgICsgY14yXHNpZ21hXjINClxcDQpcZGVsdGFeKiA9IFx1bmRlcnNldCB7XGRlbHRhfXthcmdtaW59IFwgXHVuZGVyc2V0e1xtdX17c3VwfSBcIFIoXG11LCBcZGVsdGEpID0gXHVuZGVyc2V0IHtcZGVsdGF9e2FyZ21pbn0gXCBcdW5kZXJzZXR7XG11fXtzdXB9IFwgRV9ZKChcbXUtXGRlbHRhKV4yKQ0KXFwNClxxdWFkIFx0ZXh0e2luIG9yZGVyIHRvIG1heGltaXplIHRoZSByaXNrIGZ1bmN0aW9uIHdlIHdhbnQgfSBcbXUgXHRleHR7IHRvIGJlIGFzIGZhciBhcyBsYXJnZSBhcyBwb3NzaWJlIH0NClxcDQpcbXVeKiA9IGEgXFJpZ2h0YXJyb3cgY14qPSBcdW5kZXJzZXQge2N9e2FyZ21pbn0gKGMtMSleMmFeMiAgKyBjXjJcc2lnbWFeMg0KXFwNClxmcmFje1xwYXJ0aWFsIChjLTEpXjJhXjIgICsgY14yXHNpZ21hXjJ9e1xwYXJ0aWFsIGN9ID0gY2EtYStjXHNpZ21hXjIgPSAwIFxpZmYgYyA9IFxmcmFje2F9e2EgKyBcc2lnbWFeMn1cUmlnaHRhcnJvdyBjXiogPSBcZnJhY3thfXthICsgXHNpZ21hXjJ9DQpcXA0KXHRleHR7dGh1cyB3ZSBnZXQ6IH0gXGhhdCBcbXVfYyA9IFxmcmFje2F9e2EgKyBcc2lnbWFeMn0geQ0KJCQNCg0KIyMjIyBpaQ0KDQokJA0KXHJobyhccGksIFxkZWx0YSkgPSBcc3VtX3tqPTF9XjIgUihcbXVfaixcZGVsdGEpXHBpKFxtdV9qKSA9IDAuNVIoYSwgXGRlbHRhKSArIDAuNVIoLWEsIFxkZWx0YSkgPSAwLjUoKGMtMSleMmFeMiAgKyBjXjJcc2lnbWFeMiArIChjLTEpXjJhXjIgICsgY14yXHNpZ21hXjIpID0gKGMtMSleMmFeMiAgKyBjXjJcc2lnbWFeMg0KXFwNClx0ZXh0e2FzIHdlIHNhdyB0aGUgbWlubWF4IGVzdGltYXRvciBtaW5pbWl6ZXMgdGhpcyBmdW50aW9uIHRodXMgfSAgXGRlbHRhX1xwaV4qIFx0ZXh0eyBpcyBhIG1pbm1heCBydWxlICx0aGVyZm9yZSBpdCBpcyBhIGxlYXN0IGZhdm9yYWJsZSBwcmlvcn0NClxcDQpcZGVsdGFfXHBpXiogXHRleHR7IGlzIHVuaXF1ZSBhbmQgfSBcZGVsdGFfXHBpXiogPCBcaW5mdHkgXHRleHR7IHRodXMgaXQgaXMgYWRkbWlzc2libGV9DQokJA0KDQojIFEyDQoNCiFbXShRMi5wbmcpDQoNCiMjIyBhDQoNCiQkDQpMKHAsIGEpID0gKHAgLSBhKV4yDQpcXA0KXHRleHR7dXNpbmcgdGhlIGhpbnQgYW5kIHRha2luZyBhIGJldGEgcHJpb3Igd2UgY2FuIGNhbGF1bGF0ZSB0ZSBwb3N0ZXJpb3I6IH0NClxcDQpccGkocHx5KSBccHJvcHRvIHtuIFxjaG9vc2UgeX0gcF57eX0oMS1wKV57bi15fXBee1xhbHBoYS0xfSgxLXApXntcYmV0YS0xfSBccHJvcHRvIHBee3krIFxhbHBoYS0xfSh5KzEtcClee24teStcYmV0YS0xfQ0KXFwNClx0ZXh0e3RodXMgd2UgZ2V0OiB9IFxwaShwfHkpIFxzaW0gQmV0YSh5KyBcYWxwaGEsIG4teStcYmV0YSkNClxcDQpcdGV4dHt3ZSBjYW4gY2FsY3VsYXRlIHRoZSBiYXllcyBydWxlIGVzdGltYXRvcjogfQ0KXFwNClxoYXQgcCA9IEUocHx5KSA9IFxmcmFje3krIFxhbHBoYX17eSsgXGFscGhhK24teStcYmV0YX0gPSBcZnJhY3t5KyBcYWxwaGF9e1xhbHBoYStuK1xiZXRhfQ0KXFwNClx0ZXh0e3BsdWcgaXQgaW50byB0aGUgcmlzayBmdW5jdGlvbjogfQ0KUihwLFxoYXQgcCkgPSBCaWFzKHAtIFxoYXQgcCkgKyBWKFxoYXQgcCkNClxcDQpCaWFzKFxoYXQgcC1wKSA9IFxmcmFje25wICsgXGFscGhhfXtcYWxwaGErbitcYmV0YX0gLSBwID0gXGZyYWN7XGFscGhhIC0gKFxhbHBoYStcYmV0YSlwfXtcYWxwaGErbitcYmV0YX0NClxcDQpWKFxoYXQgcCkgPSBcZnJhY3tWKHkpfXsoXGFscGhhK24rXGJldGEpXjJ9ID0gXGZyYWN7bnAoMS1wKX17KFxhbHBoYStuK1xiZXRhKV4yfQ0KXFwNClx0ZXh0e3BsdWcgYm90aCBlcXVhdGlvbnMgYmFjayBpbiB9IFIocCxcaGF0IHApOg0KXFwNClIocCxcaGF0IHApID0gXGxlZnQgKFxmcmFje1xhbHBoYSAtIChcYWxwaGErXGJldGEpcCB9e1xhbHBoYStuK1xiZXRhfSBccmlnaHQgKV4yICsgXGZyYWN7bnAoMS1wKX17KFxhbHBoYStuK1xiZXRhKV4yfSA9IFxmcmFje25wKDEtcCkgKyAoXGFscGhhLSAoXGFscGhhK1xiZXRhKXApXjJ9eyhcYWxwaGErbitcYmV0YSleMn0gPSBcZnJhY3tucCgxLXApICsgXGFscGhhXjIgLSAyXGFscGhhKFxhbHBoYStcYmV0YSlwICsgKChcYWxwaGErXGJldGEpcCleMn17KFxhbHBoYStuK1xiZXRhKV4yfSA9IA0KXFwNCj0gXGZyYWN7XGFscGhhXjIgKyAoLTJcYWxwaGEoXGFscGhhK1xiZXRhKSArIG5wKXAgKyAoKFxhbHBoYStcYmV0YSleMi1uKXBeMn17KFxhbHBoYStuK1xiZXRhKV4yfQ0KXFwNClx0ZXh0e3RodXMgaWYgfSAoLTJcYWxwaGEoXGFscGhhK1xiZXRhKSArIG5wKSA9IDAgXHRleHR7IGFuZCB9IChcYWxwaGErXGJldGEpXjItbiA9IDANCiQkDQoNCiQkDQpcdGV4dHt0aHVzIGlmIH0gKC0yXGFscGhhKFxhbHBoYStcYmV0YSkgKyBucCkgPSAwIFx0ZXh0eyBhbmQgfSAoXGFscGhhK1xiZXRhKV4yLW4gPSAwIA0KXFwNClx0ZXh0eyB3ZSBnZXQgYSByaXNrIGZ1bmN0aW9uIHdoaWNoIGRvZXMgbm90IGRlcGVuZCBvbiBwIGFuZCB3ZSBoYXZlIGEgbWlubWF4IGVzdGltYXRvcn0NClxcDQpcdGV4dHtpZiB3ZSB0YWtlIH0gXGFscGhhID0gXGJldGEgPSAwLjVcc3FydCBuIDoNClxcDQooMSk6ICgtMlxhbHBoYShcYWxwaGErXGJldGEpICsgbnApID0gMCBccXVhZA0KKDIpOiAoXGFscGhhK1xiZXRhKV4yLW4gPSAwDQpcXA0KXHRleHR7dGh1cyB3ZSBnZSB0aGF0IHRoZSBtaW5tYXggZXN0aW1hdG9yIGlzOiB9IFxoYXQgcCA9IEUocHx5KSA9IFxmcmFje3krIDAuNSBcc3FydCBufXtuICsgXHNxcnQgbn0NCiQkDQoNCiMjIyBiDQoNCiQkDQpcdGV4dHsgdGhlIGFib3ZlIGVzdGltYXRvciBpcyBhZGRtaXNzaWJsZSBzaW5jZSBpdCBpcyBhIHVuaXF1ZSBiYXllcyBydWxlfQ0KXFwNCkJldGEoXGFscGhhLCBcYmV0YSkgXHRleHR7IGlzIGEgbGVhc3QgZmF2b3JhYmxlIHByaW9yICh0aGUgcmlzayBmdW5jdGlvbiBpcyBjb25zdGFudCBmb3IgYWxsIHApfQ0KJCQNCg0KJCQNClxyaG8oXHBpLCBhKSA9IFxpbnQgTChwLCBhKSBcdGV4dHtCZXRhfShcYWxwaGEsIFxiZXRhKSBkcCA9IFxpbnQgKHAgLSBhKV4yICBcZnJhY3twXntcYWxwaGEtMX0oMS1wKV57XGJldGEtMX19e0IoXGFscGhhLCBcYmV0YSl9ZHANClxcDQpcaW50IChwIC0gYSleMiBcZnJhY3twXntcYWxwaGEtMX0oMS1wKV57XGJldGEtMX19e0IoXGFscGhhLCBcYmV0YSl9ZHAgPSBcaW50IFxmcmFje3Bee1xhbHBoYSsxfSgxLXApXntcYmV0YS0xfX17QihcYWxwaGEsXGJldGEpfSAtIDIgYSBcZnJhY3twXntcYWxwaGF9KDEtcClee1xiZXRhLTF9fXtCKFxhbHBoYSxcYmV0YSl9IC0gYV4yIFxmcmFje3Bee1xhbHBoYS0xfSgxLXApXntcYmV0YS0xfX17QihcYWxwaGEsXGJldGEpfSBkcCA9DQpcXA0KXGludCBcZnJhY3twXntcYWxwaGErMX0oMS1wKV57XGJldGEtMX19e0IoXGFscGhhLFxiZXRhKX0gZHAgPSBcZnJhY3tcYWxwaGEoXGFscGhhICsxKX17KFxhbHBoYSArIFxiZXRhICsgMSkoXGFscGhhICsgXGJldGEpfUIoXGFscGhhLFxiZXRhKVxpbnQgXGZyYWN7cF57XGFscGhhKzF9KDEtcClee1xiZXRhLTF9fXtCKFxhbHBoYSxcYmV0YSlCKFxhbHBoYSsyLFxiZXRhKX0gPSBcZnJhY3tcYWxwaGEoXGFscGhhICsxKX17KFxhbHBoYSArIFxiZXRhICsgMSkoXGFscGhhICsgXGJldGEpfQ0KXFwNClxpbnQgMiBhIFxmcmFje3Bee1xhbHBoYX0oMS1wKV57XGJldGEtMX19e0IoXGFscGhhLFxiZXRhKX0gZHAgPSAgXGxkb3RzPSAyYSBcZnJhY3tcYWxwaGF9eyhcYWxwaGEgKyBcYmV0YSl9DQpcXA0KXGludCBhXjIgXGZyYWN7cF57XGFscGhhLTF9KDEtcClee1xiZXRhLTF9fXtCKFxhbHBoYSxcYmV0YSl9IGRwID0gYV4yDQpcXA0KXHRleHR7cGx1Z2dpbmcgYWxsIHRoZSBjYWxjdWxhdGlvbnMgYmFjayBpbiB3ZSBnZXQ6fQ0KXFwNClxpbnQgKHAgLSBhKV4yIFxmcmFje3Bee1xhbHBoYS0xfSgxLXApXntcYmV0YS0xfX17QihcYWxwaGEsIFxiZXRhKX1kcCA9IFxmcmFje1xhbHBoYShcYWxwaGEgKzEpfXsoXGFscGhhICsgXGJldGEgKyAxKShcYWxwaGEgKyBcYmV0YSl9IC0yYSBcZnJhY3tcYWxwaGF9eyhcYWxwaGEgKyBcYmV0YSl9ICsgYV4yDQpcXA0KXGZyYWN7XGFscGhhKFxhbHBoYSArMSl9eyhcYWxwaGEgKyBcYmV0YSArIDEpKFxhbHBoYSArIFxiZXRhKX0gLTJcZnJhY3t5KyBcYWxwaGF9e1xhbHBoYStuK1xiZXRhfSBcZnJhY3tcYWxwaGF9eyhcYWxwaGEgKyBcYmV0YSl9ICsgKFxmcmFje3krIFxhbHBoYX17XGFscGhhK24rXGJldGF9KV4yDQokJA0KDQojIyMgYw0KDQokJA0KXGhhdCBwID0gXGZyYWN7WX17bn0gXHRleHR7IGlzIGFkZG1pc3NpYmxlOn0NClxcDQpcZnJhY3tZfXtufSBcdGV4dHtpcyBhIGJheWVzIHJ1bGUgdy5yLnQgfSBcZnJhY3socC1hKV4yfXtwKDEtcCl9IFx0ZXh0eyAodGh1cyBhZGRtaXNzaWJsZSl9DQpcXA0KXHRleHR7YXNzdW1lIHRoZXJlIGV4c2lzdHMgc29tZSBlc3RpbWF0b3IgfSBcdGlsZGUgcCBcdGV4dHsgc3VjaCB0aGF0OiB9IE1TRShwLVx0aWxkZSBwKSA8IE1TRShwLVxoYXQgcCkgXHRleHR7IHdlIGdldCB0aGUgZm9sbG93aW5nOn0NClxcDQpMXioocCxcdGlsZGUgcCkgPSBcZnJhY3tFWyhwLVx0aWxkZSBwKV4yXX17cCgxLXApfSBcbGUgXGZyYWN7RVsocC1caGF0IHApXjJdfXtwKDEtcCl9ID0gTF4qKHAsXGhhdCBwKQ0KXFwNClx0ZXh0e3doaWNoIGlzIGEgY29udHJhZGljdGlvbiB0byB0aGUgYWRkbWlzc2libGl0eSBvZiB9IFxoYXQgcCBcdGV4dHsgdy5yLnQgfSBMXioNCiQkDQoNCiMgUTMNCg0KIVtdKFEzLnBuZykNCg0KIyMjIGENCg0KJCQNCmRpZmluZTogYSA9IDAgXFJpZ2h0YXJyb3cgYWNjZXB0IFwgSF8wLCBccXVhZCBhID0gMSBcUmlnaHRhcnJvdyBhY2NlcHQgXCBIXzENClxcDQpwX3t5aX0gPSBQKFx0aGV0YSA9IFx0aGV0YV9pIHx5KQ0KXFwNCkwoXHRoZXRhLCBhKSA9IGFMXzFJKFx0aGV0YSA9IFx0aGV0YV8wKSArICgxLWEpTF8wSShcdGhldGEgPSBcdGhldGFfMSkNClxcDQpccmhvIChcdGhldGEsIFxkZWx0YSkgPSBFX3tcdGhldGF8eX0oTChcdGhldGEsIGEpKSA9IFxkZWx0YSBMXzEgcF97eTB9ICsgKDEtXGRlbHRhKUxfMHBfe3kxfSA9IFxkZWx0YSAoTF8xcF97eTB9IC0gTF8wcF97eTF9KSArIExfMHBfe3kxfQ0KXFwNClxkZWx0YV4qID0gYXJnbWluX1xkZWx0YVwgXGRlbHRhIChMXzFwX3t5MH0gLSBMXzBwX3t5MX0pICsgTF8wcF97eTF9DQpcXA0KXHRleHR7dGh1cyBpZjogfSBcZGVsdGFeKiA9IEkoTF8xcF97eTB9IDwgTF8wcF97eTF9KQ0KXFwNCnBfe3kwfSA9IFAoXHRoZXRhID0gXHRoZXRhXzAgfHkpID0gXGZyYWN7Zih5fFx0aGV0YV8wKSBwXzB9eyBmKHkpfQ0KXFwNCnBfe3kxfSA9IFAoXHRoZXRhID0gXHRoZXRhXzEgfHkpID0gXGZyYWN7Zih5fFx0aGV0YV8xKSBwXzF9eyBmKHkpfSA9IFxmcmFje2YoeXxcdGhldGEpICgxLXBfMCl9eyBmKHkpfQ0KXFwNCkxfMXBfe3kwfSA8IExfMHBfe3kxfSBcaWZmIFxmcmFje3Bfe3kxfX17cF97eTB9fSA8IFxmcmFje0xfMH17TF8xfSBcaWZmICBcZnJhY3tcZnJhY3tmKHl8XHRoZXRhXzApIHBfMH17IGYoeSl9fXtcZnJhY3tmKHl8XHRoZXRhXzEpICgxLXBfMCl9eyBmKHkpfX0gPCBcZnJhY3tMXzB9e0xfMX0gXGlmZiBcZnJhY3tmKHl8XHRoZXRhXzApfXtmKHl8XHRoZXRhXzEpfSA8IFxmcmFjeygxLXBfMClMXzB9e3BfMExfMX0NClxcDQpcdGV4dHt0aHVzIHRoZSBiYXllcyB0ZXN0aW5nIHJ1bGUgaXM6IH0gIFxmcmFje3BfMExfMX17KDEtcF8wKUxfMH0gPCBcZnJhY3tmKHl8XHRoZXRhXzEpfXtmKHl8XHRoZXRhXzApfQ0KJCQNCg0KIyMjIGINCg0KDQokJA0KXHRleHR7dGhpcyBpcyBhIGxpa2xpaG9vZCByYXRpbyB0ZXN0IGFuZCB0aHVzIGEgbW9zdCBwb3dlcmZ1bGwgdGVzdC4gdGhlIGNyaXRpY2FsIHZhbHVlcyBvZiB0aGUgdGVzdCBpczogfSBcZnJhY3twXzBMXzF9eygxLXBfMClMXzB9DQokJA0KDQoNCiMjIyBjDQoNCg0KJCQNClx0ZXh0e3RoZSByaXNrIGZ1bmN0aW9uIGlzOiB9DQpcXA0KUihcdGhldGEsIFxkZWx0YV4qKSA9IFxiZWdpbntjYXNlc30NClAoXGRlbHRhXiogPSAxKSBMXzAgJiBcdGhldGEgPSBcdGhldGFfMCBcXA0KUChcZGVsdGFeKiA9MClMXzEgICYgXHRoZXRhID0gXHRoZXRhXzENClxlbmR7Y2FzZXN9ID0gXGJlZ2lue2Nhc2VzfQ0KXGFscGhhIExfMCAmIFx0aGV0YSA9IFx0aGV0YV8wIFxcDQpcYmV0YSBMXzEgICYgXHRoZXRhID0gXHRoZXRhXzENClxlbmR7Y2FzZXN9ICA9IFxiZWdpbntjYXNlc30NClxhbHBoYSBMXzAgJiBcdGhldGEgPSBcdGhldGFfMCBcXA0KXGFscGhhIExfMCAgJiBcdGhldGEgPSBcdGhldGFfMQ0KXGVuZHtjYXNlc30NClxcDQpcdGV4dHt3aGljaCBkb2VzIG5vdCBkZXBlbmQgb24gfSBcdGhldGEgXHRleHR7IHRodXMgdGhlIHRlc3QgaXMgYWxzbyBtaW5tYXh9DQokJA0KDQoNCiMjIyBkDQoNCiQkDQoqIFx0ZXh0e0xSLSBMaWtsaWhvb2QgcmF0aW8sIExMUi0gTG9nIExpa2xpaG9vZCByYXRpb30NClxcDQpMUiA9IFxmcmFje2YoeXxcbXVfMSl9e2YoeXxcbXVfMCl9ID0gZXhwIFxsZWZ0IFx7LVxmcmFjezF9ezUwfVxzdW1fe2k9MX1eezEwMH0gKHlfaS0yKV4yK1xmcmFjezF9ezUwfVxzdW1fe2k9MX1eezEwMH0geV9pXjIgIFxyaWdodCBcfQ0KJCQNCg0KDQokJA0KXGZyYWN7MTAgcF8wfXsyNSAoMS1wXzApfSA8IExSIFxpZmYgTExSID4gbG4gXGxlZnQgKCBcZnJhY3sxMCBwXzB9ezI1ICgxLXBfMCl9IFxyaWdodCApIFxpZmYgXGxlZnQgXHstXGZyYWN7MX17NTB9XHN1bV97aT0xfV57MTAwfSAoeV9pLTIpXjIrXGZyYWN7MX17NTB9XHN1bV97aT0xfV57MTAwfSB5X2leMiAgXHJpZ2h0IFx9ID4gbG4gXGxlZnQgKCBcZnJhY3sxMCBwXzB9ezI1ICgxLXBfMCl9IFxyaWdodCApIFxpZmYgDQpcXA0KXGlmZiAtXGZyYWN7MX17NTB9XHN1bV97aT0xfV57MTAwfSAoeV9pXjItNHlfaSArNCAteV9pXjIpICA+bG4gXGxlZnQgKCBcZnJhY3sxMCBwXzB9ezI1ICgxLXBfMCl9IFxyaWdodCApIFxpZmYgOCBcYmFyIHkgLSA4ICA+bG4gXGxlZnQgKCBcZnJhY3sxMCBwXzB9ezI1ICgxLXBfMCl9IFxyaWdodCApIFxpZmYgDQpcXA0KXGlmZiBcYmFyIHkgPiAxK1xmcmFjezF9ezh9bG4gXGxlZnQgKCBcZnJhY3sxMCBwXzB9ezI1ICgxLXBfMCl9IFxyaWdodCApDQpcXA0KXHRleHR7anVzdCBuZWVkIHRvIGFkZCBwbHVnIGluIH0gcF8wIFx0ZXh0eyBhbmQgd2UgaGF2ZSBhIHZhbGlkIHRlc3R9DQpcXA0KJCQNCg0KDQojIFE0DQoNCiFbXShRNC5wbmcpDQoNCg0KJCQNClx0ZXh0e2NhbGN1bGF0ZSB0ZSBwb3N0ZXJpb3I6IH0NClxcDQpccGkoXHRoZXRhfHgpIFxwcm9wdG8gZV57LSh4LVx0aGV0YSl9IGVeey1cdGhldGF9SSgwPFx0aGV0YSA8eCkgPSBlXnsteH1JKDA8XHRoZXRhIDx4KSBccXVhZCBcdGV4dHt3aGljaCBpcyBhIGNvbnN0YW50IGZ1bmN0aW9uIG9mIH0gXHRoZXRhDQpcXA0KXHRleHR7IHRodXMgfSBcdGhldGF8eCBcc2ltIFVbMCx4XQ0KXFwNClxyaG8oXHRoZXRhLCBcZGVsdGEpID0gRV97XHRoZXRhfHh9IEwoXHRoZXRhLCBcZGVsdGEpIFxiZWdpbntjYXNlc30NClAoMSA8IFx0aGV0YSA8IDIpICsgUCgyIDwgXHRoZXRhIDwgMykgKyAzUCgzIDwgXHRoZXRhIDwgNCkgJiBcZGVsdGEgPSBBQiBcXA0KMVAoMCA8IFx0aGV0YSA8IDEpICsgMlAoMiA8IFx0aGV0YSA8IDMpICsgM1AoMyA8IFx0aGV0YSA8IDQpICYgXGRlbHRhID0gQSBcXA0KMVAoMCA8IFx0aGV0YSA8IDEpICsgMlAoMSA8IFx0aGV0YSA8IDIpICsgM1AoMyA8IFx0aGV0YSA8IDQpICYgXGRlbHRhID0gQiBcXA0KMlAoMCA8IFx0aGV0YSA8IDEpICsgMlAoMSA8IFx0aGV0YSA8IDIpICsgMlAoMiA8IFx0aGV0YSA8IDMpICYgXGRlbHRhID0gTyBcXA0KXGVuZHtjYXNlc30NClxcDQpcdGV4dHtmb3IgdGhlIGNhc2Ugd2hlcmUgeD00OiB9IFAoMSA8IFx0aGV0YSA8IDIpID0gMC4yNSBcdGV4dHsgcGx1Z2dpbmcgaXQgYmFjayBpbiB5aWVsZHM6IH0NClxcDQpccmhvKFx0aGV0YSwgXGRlbHRhKSA9IEVfe1x0aGV0YXx4fSBMKFx0aGV0YSwgXGRlbHRhKSBcYmVnaW57Y2FzZXN9DQoxLjI1ICYgXGRlbHRhID0gQUIgXFwNCjEuNSAmIFxkZWx0YSA9IEEgXFwNCjEuNSAmIFxkZWx0YSA9IEIgXFwNCjEuNSAmIFxkZWx0YSA9IE8gXFwNClxlbmR7Y2FzZXN9DQpcXA0KXHRleHR7dGhlIGJheWVzIGFjdGlvbiB0aGF0IG1pbmltaXplcyB9IFxyaG8oXHRoZXRhLCBcZGVsdGEpIFx0ZXh0eyBpcyB9IFxkZWx0YSA9IEFCDQokJA0KDQoNCiMgUTUNCg0KIVtdKFE1LnBuZykNCg0KIyMjIGENCg0KJCQNClx0ZXh0e3dlIHNhdyB0aGF0IGZvcjogfSBYIFxzaW0gTihcbXVfeCwgXHNpZ21hXjJfeCksIFxtdV94IFxzaW0gTihcdGlsZGUgXG11LCBcc2lnbWFeMikNClxcDQpcbXVfeHx4IFxzaW0gTihcZnJhY3tcc2lnbWFeMn17XHNpZ21hXjIgKyBcc2lnbWFeMl94fXgrXGZyYWN7XHNpZ21hX3heMn17XHNpZ21hXjIgKyBcc2lnbWFeMl94fSBcdGlsZGUgXG11LCAoXHNpZ21hXjIgKyBcc2lnbWFeMl94KV57LTF9KQ0KXFwNClx0ZXh0e3RoZSBiYXllcyBlc3RpbWF0ZSB3LnIudCB0aGUgcXVhZHJhdGljIGxvc3MgaXM6IH0gRV97XG11X3h8eH0gPSBcZnJhY3tcc2lnbWFeMn17XHNpZ21hXjIgKyBcc2lnbWFeMl94fXgrXGZyYWN7XHNpZ21hX3heMn17XHNpZ21hXjIgKyBcc2lnbWFeMl94fSBcdGlsZGUgXG11DQpcXA0KXHRleHR7cHVsZ2dpbmcgaW4gb3VyIHNldHVwIHlpZWxkczogfSBFX3tcbXVfeHx4fSA9IFxmcmFjezIyNX17MzI1fTExNStcZnJhY3sxMDB9ezMyNX0xMDAgPSAxMTAuMzg0Ng0KJCQNCg0KIyMjIGINCg0KJCQNClxyaG8oeCwgXGRlbHRhKSA9IEVfe1xtdXx4fSBMKFxtdSwgXGRlbHRhKSA9IFxpbnRfey0gXGluZnR5fV5cZGVsdGEgKFxkZWx0YSAtIFxtdSlmKFxtdXx4KSBkXG11ICsgMlxpbnRfe1xkZWx0YX1eXGluZnR5IChcbXUtIFxkZWx0YSlmKFxtdXx4KSBkXG11PQ0KXFwNCj0gXGRlbHRhXGludF97LSBcaW5mdHl9XlxkZWx0YSBmKFxtdXx4KSBkXG11IC0gXGludF97LSBcaW5mdHl9XlxkZWx0YSBcbXUgZihcbXV8eCkgZFxtdSArIDJcaW50X3tcZGVsdGF9XlxpbmZ0eSBcbXUgZihcbXV8eCkgZFxtdSAtIDJcZGVsdGEgXGludF97XGRlbHRhfV5caW5mdHkgZihcbXV8eCkgZFxtdT0NClxcDQo9XGRlbHRhIEYoXGRlbHRhKSAtIFxpbnRfey0gXGluZnR5fV5cZGVsdGEgXG11IGYoXG11fHgpIGRcbXUgKyAyXGludF97XGRlbHRhfV5caW5mdHkgXG11IGYoXG11fHgpIGRcbXUgLSAyXGRlbHRhKDEtRihcZGVsdGEpKQ0KXFwNClxmcmFje1xwYXJ0aWFsIFxyaG8oeCwgXGRlbHRhKX17XHBhcnRpYWwgXGRlbHRhfSA9IEYoXGRlbHRhKSArIFxkZWx0YSBmKFxkZWx0YXx4KSAtIFxkZWx0YSBmKFxkZWx0YXx4KSAtIDIgXGRlbHRhIGYoXGRlbHRhfHgpIC0gMiArIDJGKFxkZWx0YSkgKyAyIFxkZWx0YSBmKFxkZWx0YXx4KSA9IDNGKFxkZWx0YXx4KSAtIDIgPSAwIFxpZmYgXGRlbHRhID0gRl57LTF9KDIvMykgXFJpZ2h0YXJyb3cgXGRlbHRhXiogPSBGXnstMX0oMi8zKQ0KXFwNClx0ZXh0e3VzaW5nIHIgcW5vcm0gZnVuY3Rpb24gd2UgY2FuIGVzdGltYXRlIHRoZSBnZW5pdXMgSVEgdy5yLnQgdG8gdGhpcyBsb3NzIHdoaWNoIHlpbGVkczogfSAxMTMuOTY4NQ0KXFwNCiogcW5vcm0oMi8zLCAxMTAuMzg0Niwgc3FydCg5MDAvMTMpKQ0KJCQNCg0KDQojIyMgYw0KDQokJA0KXHJobyh4LCBcZGVsdGEpID0gRV97XG11fHh9IEwoXG11LCBcZGVsdGEpID0gXGludF97LSBcaW5mdHl9XlxpbmZ0eSAoXGRlbHRhIC0gXG11KV4yZV57XGZyYWN7KFxtdS0xMDApXjJ9ezkwMH19ZihcbXV8eCkgZFxtdQ0KJCQNCg==